1. Field of the Invention
The present disclosure relates to a method and a low consumption device for parallel generating channelization codes for CDMA transmissions, in particular but not exclusively, Walsh-Hadamard (WH) codes and Orthogonal Variable Spreading Factor (OVSF) codes.
2. Description of the Related Art
As is known, satellite telecommunication systems and mobile cellphone systems make widespread use of a transmission technique known as CDMA (Code Division Multiple Access), which uses channelization codes that enable the sharing of the same communication channel by a number of users. Both the transmitter and the receiver (terminal equipment) must therefore be able to generate these channelization codes for modulating the information to be transmitted and demodulating the information transmitted, respectively.
FIG. 1 illustrates, by way of example, a block diagram that illustrates the operations executed at the transmitter end to share the same communication channel by four users using four channelization codes, each formed by four bits, and the operations executed at the receiver end for recovering the information transmitted to a specific user.
With the CDMA scheme of the type illustrated in FIG. 1, each user is able to distribute or spread his signal over the entire transmission channel, which leads to the formation of four spread-spectrum signals, which are in any case orthogonal with respect to one another when they are superimposed to form a CDMA signal. At the receiver end, the regenerated composite signal is received and the signal corresponding to each user can be separated from the others by exploiting the orthogonality of the corresponding encodings.
Taking into account the transmission speeds currently used, which are moreover destined to continue to increase over time, it is important to be able to generate the codes in question in a simple and rapid way, preventing the occurrence of excessively high levels of energy consumption, above all taking into account the need for operating in the framework of mobile terminals.
Two of the channelization codes most widely used in CDMA transmission are the codes commonly known as Walsh-Hadamard (WH) and Orthogonal Variable Spreading Factor (OVSF), which, inter alia, have been chosen in view of their possible utilization in the framework of the UMTS mobile telephone standard.
For a more detailed treatment of WH codes, see for example “Digital Communications” by J. Proakis, published by McGraw-Hill, pp. 422 et seq., and “Introduction to Spread Spectrum Communication” by Roger L. Peterson, published by Prentice-Hall, pp. 542 et seq., whilst for a more detailed treatment of OVSF codes, useful reference may be made to the standard 3G TS 25.213 V3.2.0 UMTS standard document, Release 2000-03.
The WH and OVSF codes are orthogonal with respect to one another, i.e., there applies to them the property that for each pair of codes the cross correlation is zero, and both are vector functions of two variables, which are the length L and the index I of the codes in which the length L is in general a power of 2 (i.e., 2N with N an integer), and the index I is a number ranging from 0 to L−1 and can be represented by means of N binary digits.
The set of all the codes can be represented by means of square matrices having a number of rows and of columns equal to the length L of the codes, and in which each row is a respective code, to which is associated a respective value of the index I of the code, which index is, in effect, the address of the corresponding row of the matrix. In addition, each element of the matrix is represented by an antipodal digit equal to “+1” or “−1”.
Given in what follows, by way of example, are the matrices of WH codes for L equal to 2, 4 and 8:
                    L        =        2                                                                                                                A        =                  [                                                                      +                  1                                                                              +                  1                                                                                                      +                  1                                                                              -                  1                                                              ]                                        L        =        4                                                                                                                B        =                              [                                                                                +                    A                                                                                        +                    A                                                                                                                    +                    A                                                                                        -                    A                                                                        ]                    =                      [                                                                                +                    1                                                                                        +                    1                                                                                        +                    1                                                                                        +                    1                                                                                                                    +                    1                                                                                        -                    1                                                                                        +                    1                                                                                        -                    1                                                                                                                    +                    1                                                                                        +                    1                                                                                        -                    1                                                                                        -                    1                                                                                                                    +                    1                                                                                        -                    1                                                                                        -                    1                                                                                        +                    1                                                                        ]                                                  L        =        8                                                                                                                C        =                              [                                                                                +                    B                                                                                        +                    B                                                                                                                    +                    B                                                                                        -                    B                                                                        ]                    =                      [                                                                                +                    1                                                                                        +                    1                                                                                        +                    1                                                                                        +                    1                                                                                        +                    1                                                                                        +                    1                                                                                        +                    1                                                                                        +                    1                                                                                                                    +                    1                                                                                        -                    1                                                                                        +                    1                                                                                        -                    1                                                                                        +                    1                                                                                        -                    1                                                                                        +                    1                                                                                        -                    1                                                                                                                    +                    1                                                                                        +                    1                                                                                        -                    1                                                                                        -                    1                                                                                        +                    1                                                                                        +                    1                                                                                        -                    1                                                                                        -                    1                                                                                                                    +                    1                                                                                        -                    1                                                                                        -                    1                                                                                        +                    1                                                                                        +                    1                                                                                        -                    1                                                                                        -                    1                                                                                        +                    1                                                                                                                    +                    1                                                                                        +                    1                                                                                        +                    1                                                                                        +                    1                                                                                        -                    1                                                                                        -                    1                                                                                        -                    1                                                                                        -                    1                                                                                                                    +                    1                                                                                        -                    1                                                                                        +                    1                                                                                        -                    1                                                                                        -                    1                                                                                        +                    1                                                                                        -                    1                                                                                        +                    1                                                                                                                    +                    1                                                                                        +                    1                                                                                        -                    1                                                                                        -                    1                                                                                        -                    1                                                                                        -                    1                                                                                        +                    1                                                                                        +                    1                                                                                                                    +                    1                                                                                        -                    1                                                                                        -                    1                                                                                        +                    1                                                                                        -                    1                                                                                        +                    1                                                                                        +                    1                                                                                        -                    1                                                                        ]                              
As may be noted, the matrices of the WH codes are obtainable by means of a recursive process, according to which the matrix of the WH codes having a length L=2N can be obtained starting from the matrix of the WH codes having a length L=2(N−1) according to the scheme indicated, i.e., by constructing a 2×2 square matrix, in which, for L>2, the elements (1,1), (1,2) and (2,1) are equal to the matrix of the WH codes having a length L=2(N−1), whilst the element (2,2) is equal to the matrix of the WH codes having a length L=2(N−1) with sign changed, i.e., in which the sign of the single elements has been inverted. For L=2, instead, the generating matrix appearing above, also referred to as fundamental matrix, is used.
Given by way of example in what follows, instead, are the matrices of the OVSF codes for L equal to 2, 4 and 8, which differ from the matrices of the WH codes having a corresponding length as regards the position of some rows:
                    L        =        2                                                                                                                A        =                  [                                                                      +                  1                                                                              +                  1                                                                                                      +                  1                                                                              -                  1                                                              ]                                        L        =        4                                                                                                                B        =                  [                                                                      +                  1                                                                              +                  1                                                                              +                  1                                                                              +                  1                                                                                                      +                  1                                                                              +                  1                                                                              -                  1                                                                              -                  1                                                                                                      +                  1                                                                              -                  1                                                                              +                  1                                                                              -                  1                                                                                                      +                  1                                                                              -                  1                                                                              -                  1                                                                              +                  1                                                              ]                                        L        =        8                                                                                                                C        =                  [                                                                      +                  1                                                                              +                  1                                                                              +                  1                                                                              +                  1                                                                              +                  1                                                                              +                  1                                                                              +                  1                                                                              +                  1                                                                                                      +                  1                                                                              +                  1                                                                              +                  1                                                                              +                  1                                                                              -                  1                                                                              -                  1                                                                              -                  1                                                                              -                  1                                                                                                      +                  1                                                                              +                  1                                                                              -                  1                                                                              -                  1                                                                              +                  1                                                                              +                  1                                                                              -                  1                                                                              -                  1                                                                                                      +                  1                                                                              +                  1                                                                              -                  1                                                                              -                  1                                                                              -                  1                                                                              -                  1                                                                              +                  1                                                                              +                  1                                                                                                      +                  1                                                                              -                  1                                                                              +                  1                                                                              -                  1                                                                              +                  1                                                                              -                  1                                                                              +                  1                                                                              -                  1                                                                                                      +                  1                                                                              -                  1                                                                              +                  1                                                                              -                  1                                                                              -                  1                                                                              +                  1                                                                              -                  1                                                                              +                  1                                                                                                      +                  1                                                                              -                  1                                                                              -                  1                                                                              +                  1                                                                              +                  1                                                                              -                  1                                                                              -                  1                                                                              +                  1                                                                                                      +                  1                                                                              -                  1                                                                              -                  1                                                                              +                  1                                                                              -                  1                                                                              +                  1                                                                              +                  1                                                                              -                  1                                                              ]                    
For example, with reference to the matrices of WH and OVSF codes with length L=4, it may immediately be noted that the first row and the last row are identical to one another, whilst the second and third rows are inverted with respect to one another, i.e., with the second row of the matrix of the WH codes corresponding to the third row of the matrix of the OVSF codes and the third row of the WH codes corresponding to the second row of the matrix of the OVSF codes.
The same considerations apply in an identical way in the case with length L=8. Without wishing to enter into greater detail, it will be appreciated, for example, that also in this case the first and the last rows of the matrices of the two WH and OVSF codes are identical to one another whilst instead, for example, the second row of the matrix of the WH codes corresponds to the fifth row of the matrix of the OVSF codes.
In the solutions so far proposed for generating codes, such as the WH and OVSF codes, there is envisaged generation of the codes in a way that is altogether independent.
It is found, on the other hand, that the generation of the WH codes is simpler and hence less burdensome in terms of circuit complexity, requiring typically, for example, for codes with length L=8, a circuit complexity in the region of 200 logic gates.
The generation of the OVSF codes is in general more burdensome. For example, there has recently been proposed a solution in which, to generate OVSF codes with length L=8, recourse is had to a circuit with a complexity in the region of 400 logic gates.
In certain applications there arises, however, the need for being able to generate both of the codes. For example, with reference to the UMTS application cited previously, the US standards (for example the IS95CDMA standard) envisage the use of WH codes, whilst in Europe, for the same application, the use of OVSF codes has had preference.
In order to enable the creation of mobile terminals that are able to operate with different standards, it is therefore important to have available solutions that will enable generation of both codes in a simple and rapid way, minimizing the absorption of energy, the aim being to prevent having to resort to a purely additive solution based upon the use of a first generator for generating the WH codes and a second generator distinct from the first for generating the OVSF codes. This is a solution, which, as regards the degree of circuit complexity to which reference has been made previously, would involve the use of circuits with a complexity in the region of 600 logic gates.
In the literature, all the WH and OVSF codes are generated serially by means of synchronous circuits or look-up tables, usually implemented in the form of a RAM or equivalent component, in which the correspondence between the various values of the index and the respective code is stored. An example of a synchronous circuit with serial output for generating the WH codes is illustrated in FIG. 2. This is made up of a synchronous binary counter formed, for a WH code with L=2N, by N flip-flops for the storage of the index I (address of the row of the matrix corresponding to the code), N flip-flops for the frequency dividers, N two-input XOR logic gates, an N-input OR logic gate, and a clock generator generating a clock at the required output frequency.
The circuit illustrated in FIG. 2 is, however, optimized only in applications where it is used as generator of channelization codes for CDMA transmissions, in which the channelization code is required to be generated serially, whilst it is far from satisfactory in applications, such as for example the loading of matched filters with FIR structure, in which the channelization codes need to be supplied in parallel. Up to the present day, in fact, for this type of applications the only choice left open has been to take the serial output from the circuit of FIG. 1 and send it to a serial-input-parallel-output (SIPO) register, the implementation of which requires a further 2N flip-flops, or else uses a specific look-up table.